package com.cloudlinkscm.base.authcenter.service;

import com.cloudlinkscm.base.authcenter.model.dto.TenantResourceDistributionDTO;
import com.cloudlinkscm.base.authcenter.model.dto.TenantResourceMoveDTO;

/**
 * Created by sin on 2017/8/7.
 *
 * 租户资源
 */
public interface TenantResourceService {


	/**
	 * 租户资源分配：获取租户 资源
	 *
	 * <p>
	 *     返回一个两个 tree
	 *
	 *      1、一个已分配
	 *      2、一个未分配
	 * </p>
	 *
	 * @param tenantId 租户id
	 * @return 返回资源分配 DTO
	 */
	TenantResourceDistributionDTO getResource(String tenantId);


	/**
	 * 租户资源分配：资源移动
	 *
	 * <p>
	 *     资源移动有：移入 和 移出
	 *
	 *     移入：递归 public resource 节点插入 target 节点
	 *
	 *     移出：递归 tenant resource 下的关联节点
	 *
	 *          已分配给 user 的 resource 强制收回
	 * </p>
	 *
	 * @param tenantId 租户编号
	 * @param moveDTO 移动的资源类
	 * @return 受影响条数
	 */
	Integer move(String tenantId, TenantResourceMoveDTO moveDTO);

}
